namespace KeyStone.Ioc
{
   using System;

   /// <summary>
   /// Class Registration.
   /// </summary>
   public class Registration
   {
      /// <summary>
      /// Gets or sets the interface.
      /// </summary>
      /// <value>The interface.</value>
      public Type Interface { get; set; }

      /// <summary>
      /// Gets or sets the implementation.
      /// </summary>
      /// <value>The implementation.</value>
      public Type Implementation { get; set; }

      /// <summary>
      /// Gets or sets the instance.
      /// </summary>
      /// <value>The instance.</value>
      public object Instance { get; set; }

      /// <summary>
      /// Gets or sets the constructor arguments.
      /// </summary>
      /// <value>The constructor arguments.</value>
      public object[] ConstructorArguments { get; set; }

      /// <summary>
      /// Gets or sets the life time.
      /// </summary>
      /// <value>The life time.</value>
      public Lifetime LifeTime { get; set; }
   }
}